#include "dev_led.h"

// LED初始化
void led_init(void) 
{
#ifdef STM32F10X
	GPIO_InitTypeDef GPIO_InitStructure;
	LED_RCC_APBx_CMD(LED_RCC_APBx, ENABLE);
    
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_InitStructure.GPIO_Pin = LED_GPIO_Pin;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(LED_GPIOx, &GPIO_InitStructure);
	GPIO_ResetBits(LED_GPIOx, LED_GPIO_Pin);
    //GPIO_SetBits(LED_GPIOx, LED_GPIO_Pin);
#endif
}

// LED打开
void led_on(void)
{
    //GPIO_ResetBits(LED_GPIOx, LED_GPIO_Pin);
    GPIO_SetBits(LED_GPIOx, LED_GPIO_Pin);
}

// LED关闭
void led_off(void)
{
    GPIO_ResetBits(LED_GPIOx, LED_GPIO_Pin);
    //GPIO_SetBits(LED_GPIOx, LED_GPIO_Pin);
}

// LED闪烁
// cycle：LED工作周期
// time：工作周期内响声持续时间
void led_blink(uint16 cycle,uint16 time)
{
    static uint16 t = 0;
    
    if (time > cycle)
    {
        t = 0;
        led_off();
        return;
    }
    ++t;
    if (t < time)       led_on();
    else if (t < cycle) led_off();
    else                t = 0;
}
